/**
 * Created by Administrator on 2017/3/22.
 */
var pool = require('../../app_server/dao/DBConnectPool');
var request = require('request');
var async = require('async');


module.exports = {
    /**
     * 参数验证，如果为空，设置默认值
     * @param sourceParam
     * @param defaultvalue
     */
    validParams: function (sourceParam, defaultvalue) {
        if (!sourceParam) {
            sourceParam = defaultvalue;
        }
        return sourceParam;
    },

    baseDao: function (methodName, sqlparam, params, callBack) {
        pool.getPoolConnection('mtsc', function (err, connection) {
            if (err) {
                // console.log('Error: get connection from pool in',methodName, err);
                // connection.release();
                return;
            }
            var sql = sqlparam;
            connection.query(sql, params, function (queryErr, rows) {
                if (queryErr) {
                    if(methodName=='live'){
                        callBack({
                            isSuccess: false
                        });
                        connection.release();
                        return;
                    }
                    console.log('query error: ',methodName, queryErr);
                    callBack({
                        isSuccess: false
                    });
                } else {
                    callBack({
                        isSuccess: true,
                        rows: rows
                    })
                }
                connection.release();
            })
        })
    },

    getCookieOpenId: function (req) {
        var cookie_openid = 'default';
        if (req.signedCookies.openid) {
            cookie_openid = req.signedCookies.openid;
        }
        return cookie_openid;
    },
    getPostOpenid: function (req) {

        var ipenid = 'default';
        if (req.query.open_id) {
            ipenid = req.query.open_id;
        }
        ipenid = validParams(ipenid, '0000');
        return ipenid;
    }


    // _getNewSqlParamEntity: function (sql, params, callback) {
    //     if (callback) {
    //         return callback(null, {
    //             sql: sql,
    //             params: params
    //         });
    //     }
    //     return {
    //         sql: sql,
    //         params: params
    //     };
    // }
    //
    // execTrans: function (sqlparamsEntities, callback) {
    //     pool.getConnection(function (err, connection) {
    //         if (err) {
    //             return callback(err, null);
    //         }
    //         connection.beginTransaction(function (err) {
    //             if (err) {
    //                 return callback(err, null);
    //             }
    //             console.log("开始执行transaction，共执行" + sqlparamsEntities.length + "条数据");
    //             var funcAry = [];
    //             sqlparamsEntities.forEach(function (sql_param) {
    //                 var temp = function (cb) {
    //                     var sql = sql_param.sql;
    //                     var param = sql_param.params;
    //                     connection.query(sql, param, function (tErr, rows, fields) {
    //                         if (tErr) {
    //                             connection.rollback(function () {
    //                                 console.log("事务失败，" + sql_param + "，ERROR：" + tErr);
    //                                 throw tErr;
    //                             });
    //                         } else {
    //                             return cb(null, 'ok');
    //                         }
    //                     })
    //                 };
    //                 funcAry.push(temp);
    //             });
    //
    //             async.series(funcAry, function (err, result) {
    //                 console.log("transaction error: " + err);
    //                 if (err) {
    //                     connection.rollback(function (err) {
    //                         console.log("transaction error: " + err);
    //                         connection.release();
    //                         return callback(err, null);
    //                     });
    //                 } else {
    //                     connection.commit(function (err, info) {
    //                         console.log("transaction info: " + JSON.stringify(info));
    //                         if (err) {
    //                             console.log("执行事务失败，" + err);
    //                             connection.rollback(function (err) {
    //                                 console.log("transaction error: " + err);
    //                                 connection.release();
    //                                 return callback(err, null);
    //                             });
    //                         } else {
    //                             connection.release();
    //                             return callback(null, info);
    //                         }
    //                     })
    //                 }
    //             })
    //         });
    //     });
    // }


}



